
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 *
 */

package com.hlkj.pay.app.token;

import com.hlkj.framework.common.pojo.CommonResult;
import com.hlkj.pay.vo.common.req.token.*;
import com.hlkj.pay.vo.common.resp.token.MfaResp;
import com.hlkj.pay.vo.common.resp.token.OauthTokenResp;
/**
 * @author HlpayTeam
 * @date 2024/09/27 17:50
 */
public interface ITokenAuthService {

    /**
     * 获取token信息
     * 
     * @param passwordTokenRequest
     * @return
     */
    CommonResult<OauthTokenResp> webUserToken(PasswordTokenRequest passwordTokenRequest);
    /**
     * 获取token信息
     *
     * @param passwordTokenRequest
     * @return
     */
    CommonResult<OauthTokenResp> webUserToken(PhoneTokenRequest passwordTokenRequest);

    /**
     * 获取token信息
     * 
     * @param authMfaTokenRequest
     * @return
     */
    CommonResult<MfaResp> mfaToken(AuthMfaTokenRequest authMfaTokenRequest);

    /**
     * 获取token信息
     * 
     * @param authMfaCheckTokenRequest
     * @return
     */
    CommonResult<OauthTokenResp> mfaCheckToken(AuthMfaCheckTokenRequest authMfaCheckTokenRequest);

    /**
     * 获取token信息
     * 
     * @param authTokenClientRequest
     * @return
     */
    CommonResult<OauthTokenResp> clientToken(AuthTokenClientRequest authTokenClientRequest);
    /**
     * 获取token信息
     *
     * @param authTokenClientRequest
     * @return
     */
    CommonResult<OauthTokenResp> clientToken(PhoneTokenRequest phoneTokenRequest);

    /**
     * refreshToken
     * 
     * @param token
     * @return
     */
    CommonResult<OauthTokenResp> refreshToken(String token);

    /**
     * checkToken
     * 
     * @param token
     * @return
     */
    CommonResult<Boolean> checkToken(String token);

    /**
     * expire
     * 
     * @param token
     * @return
     */
    CommonResult expireToken(String token);

}
